class Person(object):
    pass


if __name__ == '__main__':
    p = Person()

    # p这个对象是由 <class '__main__.Person'> 这个对象创建的
    print(f'p这个对象是由 {p.__class__} 这个对象创建的')  # <class '__main__.Person'>

    # Person这个对象是由 <class 'type'> 这个对象创建的，这个Person叫做类对象
    print(f'Person这个对象是由 {Person.__class__} 这个对象创建的')  # <class 'type'>

    # Person这个对象的父对象是: (<class 'object'>,)
    print(f'Person这个对象的父对象是: {Person.__bases__} ')
    # Person这个对象由：<class 'type'> 这个对象创建的
    print(f'Person这个对象由：{Person.__class__} 这个对象创建的')

    # int
    print(f'int这个对象的父对象是: {int.__bases__} ')  # (<class 'object'>,)
    print(f'int这个对象由：{int.__class__} 这个对象创建的')  # <class 'type'>

    # str
    print(f'str 这个对象的父对象是: {str.__bases__} ')  # (<class 'object'>,)
    print(f'str 这个对象由：{str.__class__} 这个对象创建的')  # <class 'type'>

    # float
    print(f'float 这个对象的父对象是: {float.__bases__} ')  # (<class 'object'>,)
    print(f'float 这个对象由：{float.__class__} 这个对象创建的')  # <class 'type'>

    # bool
    print(f'bool 这个对象的父对象是: {bool.__bases__} ')  # (<class 'int'>,)
    print(f'bool 这个对象由：{bool.__class__} 这个对象创建的')  # <class 'type'>

    a = 100
    # print(f'a 这个对象的父对象是: {a.__bases__} ')  # 出错
    print(f'a 这个对象由：{a.__class__} 这个对象创建的')  # <class 'int'>

    b =3.14
    # print(f'b 这个对象的父对象是: {b.__bases__} ')  # 出错
    print(f'b 这个对象由：{b.__class__} 这个对象创建的')  # <class 'float'>